#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
迭代：
1. 字典迭代
2. 字符串迭代
3. 判断是否可以迭代
4. enumerate函数
"""
from collections.abc import Iterable
# dict 迭代
d = {'a': 1, 'b': '2', 'c': 3}
for key in d:
    print(key)

for value in d.values():
    print(value)

for k, v in d.items():
    print(k, v)
# 字符串迭代
s = 'ABC'
for ch in s:
    print(ch)


# 判断是否可以迭代
print(isinstance('abc', Iterable))  # True
print(isinstance(123, Iterable))  # False

# 如果要对list实现类似Java那样的下标循环怎么办？Python内置的enumerate函数可以把一个list变成索引-元素对，这样就可以在for循环中同时迭代索引和元素本身
for i, value in enumerate(['A', 'B', 'C']):
    print(i, value)

# 在Python中同时引用两个变量也是很常见的
for x, y in [(1, 1), (2, 4), (3, 9)]:
    print(x, y)